﻿
namespace TestProject1.DB;

/// <summary>
/// 通过这种方式，我们可以确保每个测试在运行前都会重置数据库，以保证测试的独立性和一致性
/// </summary>
public class DatabaseTestFixture : IDisposable
{
    // TODO 无法依赖  
    // Checkpoint 类是 Respawn 的核心组件，用于创建数据库快照和重置数据库。
     // private readonly Checkpoint _checkpoint;


    public DatabaseTestFixture()
    {
        // 配置Respawn，指定连接字符串
        // _checkpoint = new Checkpoint
        // {
        //     TablesToIgnore = new[] { "__EFMigrationsHistory" } // 忽略 EF Core 的迁移历史表
        // };
    }
    
    public async Task ResetCheckpointAsync()
    {
        // await _checkpoint.Reset("MySQLConnection");
    }
    
    // IDisposable 接口，以确保在测试运行结束后正确释放资源。
    public void Dispose()
    {
        // TODO 在此释放托管资源
        // _checkpoint.Dispose();
    }
}